perm filename ITS.PRI[NEW,LSP] blob sn#490234 filedate 1979-12-25 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00060 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00009 00002
C00010 00003
C00016 00004
C00018 00005
C00020 00006	Introduction to ITS                                                    1
C00024 00007	I. Introduction                                      Introduction to ITS
C00025 00008	Introduction to ITS                          II. Getting onto the System
C00029 00009	II. Getting onto the System                          Introduction to ITS
C00030 00010	Introduction to ITS                          II. Getting onto the System
C00036 00011	II. Getting onto the System                          Introduction to ITS
C00039 00012	Introduction to ITS                          II. Getting onto the System
C00043 00013	II. Getting onto the System                          Introduction to ITS
C00047 00014	Introduction to ITS                          II. Getting onto the System
C00051 00015	III. DDT                                             Introduction to ITS
C00056 00016	Introduction to ITS                                             III. DDT
C00061 00017	III. DDT                                             Introduction to ITS
C00065 00018	Introduction to ITS                                             III. DDT
C00070 00019	III. DDT                                             Introduction to ITS
C00074 00020	Introduction to ITS                                             III. DDT
C00079 00021	III. DDT                                             Introduction to ITS
C00083 00022	Introduction to ITS                                             III. DDT
C00088 00023	III. DDT                                             Introduction to ITS
C00092 00024	Introduction to ITS                                             III. DDT
C00094 00025	IV. Introduction to and Description of Files         Introduction to ITS
C00099 00026	Introduction to ITS         IV. Introduction to and Description of Files
C00104 00027	IV. Introduction to and Description of Files         Introduction to ITS
C00109 00028	Introduction to ITS         IV. Introduction to and Description of Files
C00113 00029	IV. Introduction to and Description of Files         Introduction to ITS
C00117 00030	Introduction to ITS         IV. Introduction to and Description of Files
C00120 00031	V. TECO                                              Introduction to ITS
C00125 00032	Introduction to ITS                                              V. TECO
C00128 00033	V. TECO                                              Introduction to ITS
C00132 00034	Introduction to ITS                                              V. TECO
C00138 00035	V. TECO                                              Introduction to ITS
C00143 00036	Introduction to ITS                                              V. TECO
C00146 00037	V. TECO                                              Introduction to ITS
C00150 00038	Introduction to ITS                                              V. TECO
C00154 00039	V. TECO                                              Introduction to ITS
C00158 00040	Introduction to ITS                                    VI. Miscellaneous
C00163 00041	VI. Miscellaneous                                    Introduction to ITS
C00168 00042	Introduction to ITS                                    VI. Miscellaneous
C00169 00043	VII. Additional Sources of Information               Introduction to ITS
C00173 00044	Introduction to ITS               VII. Additional Sources of Information
C00174 00045	VIII. Terminals                                      Introduction to ITS
C00179 00046	Introduction to ITS                                      VIII. Terminals
C00184 00047	VIII. Terminals                                      Introduction to ITS
C00186 00048	Introduction to ITS                                      VIII. Terminals
C00190 00049	VIII. Terminals                                      Introduction to ITS
C00193 00050	Introduction to ITS                                      VIII. Terminals
C00195 00051	VIII. Terminals                                      Introduction to ITS
C00197 00052	Introduction to ITS                                IX. Possible Problems
C00202 00053	IX. Possible Problems                                Introduction to ITS
C00208 00054	Introduction to ITS                                IX. Possible Problems
C00213 00055	IX. Possible Problems                                Introduction to ITS
C00217 00056	                                                       DDT Command Index
C00222 00057	DDT Command Index
C00223 00058	                                                           General Index
C00227 00059	General Index
C00228 00060	βββ
C00229 ENDMK
C⊗;







                            Mathlab Memo #3


                 Massachusetts Institute of Technology

                             Mathlab Group
                    Laboratory for Computer Science
                    Cambridge, Massachusetts, 02139




              An Introduction to ITS for the MACSYMA User





                                   by
                              Ellen Lewis






                                revised
                            February 5, 1979








              An Introduction to ITS for the MACSYMA User


Contents
←←←←←←←←

I.        Introduction . . . . . . . . . . . . . . . . . . . . . . . . 1
II.       Getting onto the System . . . . . . . . . . . . . . . . . . .3
     A.   Getting an Account . . . . . . . . . . . . . . . . . . . . . 3
     B.   Establishing a Connection . . . . . . . . . . . . . . . . . .3
     C.   Logging In . . . . . . . . . . . . . . . . . . . . . . . . . 6
     D.   Loading a MACSYMA . . . . . . . . . . . . . . . . . . . . . .6
     E.   Logging Out . . . . . . . . . . . . . . . . . . . . . . . . .7
     F.   INQUIR . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
     G.   INIT files . . . . . . . . . . . . . . . . . . . . . . . . . 8
     H.   Experienced User Login Protocol . . . . . . . . . . . . . . .9
III.      DDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
     A.   Program Loading and Execution . . . . . . . . . . . . . . . 10
     B.   "Jobs" . . . . . . . . . . . . . . . . . . . . . . . . . . .11
     C.   Moving From One Job to the Next . . . . . . . . . . . . . . 12
     D.   Getting Rid of Jobs . . . . . . . . . . . . . . . . . . . . 12
     E.   Disowned and Detached Jobs . . . . . . . . . . . . . . . . .13
     F.   Quit Commands  . . . . . . . . . . . . . . . . . . . . . . .13
     G.   Communication . . . . . . . . . . . . . . . . . . . . . . . 14
     H.   Messages and Mail . . . . . . . . . . . . . . . . . . . . . 17
     I.   MACSYM Mail . . . . . . . . . . . . . . . . . . . . . . . . 18
     J.   Other DDT Commands . . . . . . . . . . . . . . . . . . . . .18
IV.       Introduction to and Description of Files . . . . . . . . . .20
     A.   File Names . . . . . . . . . . . . . . . . . . . . . . . . .20
     B.   Directories . . . . . . . . . . . . . . . . . . . . . . . . 21
     C.   File Manipulation: Printing, Copying, Renaming, Deleting . .23
     D.   FIND. . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
     E.   Altmode, or Defaults made easy . . . . . . . . . . . . . . .24
V.        TECO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
     A.   File Preparation . . . . . . . . . . . . . . . . . . . . . .26
     B.   Editing Commands . . . . . . . . . . . . . . . . . . . . . .28
     C.   Filing in Teco . . . . . . . . . . . . . . . . . . . . . . .29
     D.   TECO Example . . . . . . . . . . . . . . . . . . . . . . . .31
     E.   Other TECO Facilities . . . . . . . . . . . . . . . . . . . 32
VI.       Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . 35
     A.   NAME. . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
     B.   WHOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
     C.   PEEK. . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
     D.   TIME. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
VII.      Additional Sources of Information . . . . . . . . . . . . . 38
     A.   Running MACSYMA Demo files. . . . . . . . . . . . . . . . . 38
     B.   SHARE Directory . . . . . . . . . . . . . . . . . . . . . . 38
     C.   The INFO Program and further information about the system . 38
VIII.     Terminals . . . . . . . . . . . . . . . . . . . . . . . . . 40
     A.   The TCTYP Program . . . . . . . . . . . . . . . . . . . . . 40

                                   i



     B.   A Word About Keyboards . . . . . . . . . . . . . . . . . . .41
     C.   OCTPUS . . . . . . . . . . . . . . . . . . . . . . . . . . .42
     D.   TIP commands . . . . . . . . . . . . . . . . . . . . . . . .46
IX.       Possible Problems . . . . . . . . . . . . . . . . . . . . . 47
     A.   Problems with your terminal . . . . . . . . . . . . . . . . 47
     B.   Problems with the system . . . . . . . . . . . . . . . . . .47
     C.   If Your Typing Appears . . . . . . . . . . . . . . . . . . .47
     D.   If Your Typing Does Not Appear . . . . . . . . . . . . . . .49
Index of DDT Commands. . . . . . . . . . . . . . . . . . . . . . . . .51
General Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . .53













































                                   ii








                            Acknowledgements


The  original  outline for  this  memo was  prepared  by  Richard Bogen.
Corrections and editorial comments were provided by the Mathlab Group.



Work  reported herein  was supported  in part  by the  Advanced Research
Projects Agency of  the Department of Defense  and was monitored  by the
Office of  Naval Research under  Contract #N00014-75-C-0661, in  part by
the United States Department of Energy under Contract #E(11-1)-3070, and
in part by the National Aeronautics and Space Administration under Grant
NSG 1323.




































                                  iii
Introduction to ITS                                                    1


I. Introduction
   ←←←←←←←←←←←←

        The  MACSYMA algebraic  manipulation system  is a  collection of
programs embedded in a LISP interpreter.  Currently it is implemented on
the Multics operating system which runs on a Honeywell 6180, and  on the
Incompatible Timesharing System  (ITS) which runs  on a PDP-10  known as
the MC machine.

        The purpose of this document  is to describe how to  gain access
to MACSYMA as it exists on the MC PDP-10 at the Laboratory  for Computer
Science at M.I.T.  and how to interact with the environment in  which it
exists, i.e. operating system,  monitor, editor, and other  programs, so
that successful use can be made of it.

        To use MACSYMA effectively you  will also need a "Primer"  and a
MACSYMA Manual.  These may be obtained from:
←←←←←←← ←←←←←←

                    Laboratory for Computer Science
                    Publications Department
                    Room 112
                    545 Technology Square
                    Cambridge, MA 02139


There is a  $5.00 charge for the  manual.  The primer and  this document
are free, and additional copies may be obtained from:

                    Secretary, Mathlab Group
                    Laboratory for Computer Science
                    Room 836
                    545 Technology Square
                    Cambridge, MA 02139




Before continuing we should  establish some conventions for  notation in
this document.


the character $ will be used to denote the "altmode" (ascii 27 (decimal)
     or  33  (octal)),  often labelled  "escape"  or  "esc"  on terminal
     keyboards.

control characters will be denoted by being prefixed by an uparrow, thus
     ↑Z, ↑A.  They are typed  by holding down the key  marked "control",
     "ctrl" or "cntl"  on the keyboard as  one would the shift  key, and
     typing the indicated character.

<something>  will be  used to  denote variables  in examples  of command
     lines.  Thus

      :login <name><carrige return>


                                   1
I. Introduction                                      Introduction to ITS


     The entire <name>  is to be replaced  with whatever login  name you
     select, e.g.

      :login ellen

     and the <carriage return>  (often shortened to <cr>)  indicates the
     key labelled "return".
















































                                   2
Introduction to ITS                          II. Getting onto the System


II. Getting onto the System
    ←←←←←←← ←←←← ←←← ←←←←←←


II.A. Getting an Account

        To  log in  to  the system  you will  need  a login  name  and a
password.  A  login name is  any identifier of  up to six  characters in
length.   Most  people choose  their  initials, but  any  combination of
letters or digits is acceptable, provided (a) the last character  is not
a  digit, and  (b) the  particular  name is  not already  being  used by
someone  else.   The  INQUIR  program will  check  whether  or  not your
proposed login name is "taken", and ask you to select another if  it is.
The login name you select should be used each time you log in.

        A password  is any combination  of letters and  digits up  to 12
characters in length.   If you do not  have a password, then  you should
apply for one.  The procedure will be started automatically for you when
you first  connect to  the machine and  attempt to  log in.   Answer the
questions  which the  Password program  asks, and  usually within  a few
minutes your account will be initialized.  If you have any  questions or
problems, you may call (617)253-5891 for assistance.

        New users who  intend to use MACSYMA  more than once  should run
the INQUIR program  (see II.F. below)  and answer its  questions, giving
their full name, address,  position, field of interest, and  login name.
The INQUIR program will be started up for you automatically when you log
in the first time after your account has been initialized.




II.B. Establishing a Connection

        There  are  4  different  ways  in  which  one  can  establish a
connection to the MC computer:


   (1)  Using a  terminal which  is directly  connected to  the machine.
        These  are  on the  8th  floor of  the  Laboratory  for Computer
        Science at M.I.T.

   (2)  Using a dialup line, directly connect to the machine.

   (3)  Dialing the number of a Terminal Interface Processor (or TIP) on
        the ARPA Network, and connecting to the machine from there.

   (4)  Connecting to another computer  on the ARPA Network either  by a
        direct line or  a direct dialup line,  and running a  program on
        that computer which makes network connections.


        The  protocol  for  (4) will  vary  widely  with  the particular
computer you have access to.   However, no matter what the  protocol you


                                   3
II. Getting onto the System                          Introduction to ITS


will have to specify either the  name of the MC computer, which  is MIT-
MC, or its host number, which is 236 decimal, or 354 octal.

        The protocols for (2) and (3) are given here:



















































                                   4
Introduction to ITS                          II. Getting onto the System


        Dialup protocol                           TIP protocol

1. Make sure your console is set        1. Make sure your console is set
   for 30  cps (300  baud), full           for 30  cps (300  baud), full
   duplex, the parity switch, if           duplex, the parity switch, if
   there   is   one,   does  not           there   is   one,   does  not
   matter.                                 matter.
2.  Dial   the  number   of  the        2. Dial the number of the Tip.
   machine.                             3. When you hear the  tone place
3. When you hear the  tone place           the receiver in  the acoustic
   the receiver in  the acoustic           coupler headset or  press the
   coupler headset or  press the           data  button  on  the dataset
   data  button  on  the dataset           and hang up the receiver.
   and hang up the receiver.            4.  Type the  appropriate letter
4.  Type  an  E.   The  response           for  your console  type.  For
   should be                               most   ascii   consoles  that
                                           operate at 300 baud,  this is
        Connected to MC                    E.   Some response  will then
                                           be printed.
   Now you may proceed  with the        5. Type @OPEN 236.   (The 236 is
   standard    login   procedure           the   number   of    the   MC
   starting with (2) below.                computer.)  Most  commands to
                                           the TIP begin with @  and are
                                                                       1
                                           never seen by the MC system.
                                           The  response  to  the  @OPEN
                                           command may be any one of the
                                           following:
                                        CANT     -this means the line is
                                           already  open  and   the  TIP
                                           cannot  make  the connection.
                                           (Probable reason is  the last
                                           user   did   not   close  the
                                           connection  when   he  logged
                                           out).   Type @CLOSE  and then
                                           repeat   the   @OPEN  command
                                           again.
                                        TRYING...-this means the  TIP is
                                           attempting  to  complete  the
                                           connection.      Wait,    and
                                           usually     it     will    be
                                           successful.
                                        OPEN     -this     means     the
                                           connection      has      been
                                           completed.
                                        REFUSED  -this     means     all
                                           available  ports are  in use.
                                           Try again later.
                                        Now  you  may  proceed  with (2)
                                           below.


←←←←←←←←←←←←←←←
1. If you want to type an @ that
is  not the  beginning of  a TIP
command, then type @@.             5
II. Getting onto the System                          Introduction to ITS


II.C. Logging In

(1)  Type Control-Z.  (Control characters are typed by holding  down the
     key  labelled  "control"  (or  "Ctrl")  while  typing  the  desired
     character.  From here on they will be represented in print by being
     prefixed with "↑".)  After ↑Z  is typed the MC system  will respond
                                                               2
     with "MC ITS nnnn DDT mmm" and tell how many users are on.

(2)  Type :LOGIN, a space, your  login name, and a carriage  return. For
     example,

     :LOGIN JRN

     The system  will then  ask for your  password.  Type  your password
     followed by a carriage return.

The system will then print the date and time, and the message

Welcome to ITS

If you have any mail (see III.H), it will be offered to you  for reading
and if there are any systems  messages you have not seen yet,  they will
also be offered.




II.D. Loading a MACSYMA

        To load  a MACSYMA  simply type :MACSYM  followed by  a carriage
return  or  :A followed  by  a carriage  return  (A is  a  pseudonym for
MACSYMA).  Several  seconds later  MACSYMA will  acknowledge that  it is
ready by printing

This is MACSYMA 274


(or whatever the current version is), loading a "fix" file, if  any, and
labeling the first input line


(C1)


Now commands (terminated by a semicolon or dollar sign) may be  typed to
MACSYMA. (See the MACSYMA manual.)

        If you have never used  MACSYMA before, you may wish to  run the
on-line PRIMER.  To do this, give MACSYMA the command
←←←←←←←←←←←←←←←
2. The nnnn and mmm are  version numbers for the system and  DDT program
respectively,  and  are useful  for  connecting bugs  with  a particular
version.

                                   6
Introduction to ITS                          II. Getting onto the System


PRIMER();


The "QUIT" command for MACSYMA is ↑G (control-G).

        If you need  help, you can use  the SEND(); command  in MACSYMA.
Type

SEND("message");


and message will be sent to the Mathlab group people who are  logged in.
One of them  will then contact you  and help you.  Notice  the quotation
marks, they are part of the command.

        Other  on-line  HELP  commands for  MACSYMA  are  OPTIONS(); and
DESCRIBE(command);.   The OPTIONS  command enters  a network  of topics,
which allows you to find the commands which exist in MACSYMA for dealing
                                                                       3
with certain types of  expressions or to perform  particular functions.
The DESCRIBE  command takes  the name of  a command  and prints  out the
                                                     4
portion of  the manual which  describes that command.   To see  how some
commands work, there is an EXAMPLE(command); command, which runs  a demo
file of sample calculations.




II.E. Logging Out

        In order to logout you should be at system command  level.  That
is, you should be talking to DDT (see III. below) and not to  MACSYMA or
any other programs.  Usually  it is only necessary  to type a ↑Z  to get
back to DDT level.  If you are already there then the system  prints ??.
To  logout from  MC, type  the command  :LOGOUT and  a  carriage return.
Next, if you are using a  TIP, close the connection by typing  @C.  Then
it is only necessary to hang up the phone and turn off the terminal.

        Occasionally,  attempting  to logout  will  produce  the message
--KILL RUNNING INFERIORS?--.  This means that a program you  have loaded
is still running.  If you do not want the program (i.e. want to  kill it




←←←←←←←←←←←←←←←
3. This network is not quite complete, but is being worked on currently.
The  command  is usable,  however,  and the  areas  covered  will expand
rapidly.

4. This  command gets  updated when  the manual  is updated,  however at
times  there is  a lag  in  this updating.  This will  be  rectified and
sending messages reporting it is not necessary.

                                   7
II. Getting onto the System                          Introduction to ITS


                                                  5
and logout), respond by hitting the space bar once .  If you do not want
to kill  the program, you  can type  :LISTJ (see III.B)  to see  what is
going on and proceed accordingly.




II.F. INQUIR

        The INQUIR program assists us in identifying our users.  It will
be started  for you automatically  the first time  you log in.   It will
explain itself fairly well; however, please note the following:

        You do not need to give your Social Security Number if you would
prefer not to, nor your birthday.  To avoid any question you feel is too
prying or  does not apply,  simply type a  carriage return.  We  do need
your full name and an address, however.  You may give your place of work
as "home address" if you wish.  Your "Group" is U (MACSYMA  User).  When
                                                            ←
you have  answered all the  questions and it  says "What now  boss?" You
signify that you are finished by typing

DONE


If you need to update the information in your INQUIR entry you can start
up INQUIR by typing

:INQUIR


(followed by a carriage return, of course).  And the system will look up
your entry and allow you to edit it.


II.G. INIT files

        It is possible to have a special file which does  certain things
when you log in, like give  :TCTYP commands for you (see below),  or set
the defaults to  a particular directory (see  Section IV.B on  files and
directories), or print out the date and time.  Such a file is  called an
INIT (INITialization) file.  If you  have a directory, it is  located on
your directory and is called

<login name>;<login name> LOGIN


If you do not have a  directory, it is located on your  "home directory"
(see IV.A below) and has the name

<directory>;<login name> LOGIN
←←←←←←←←←←←←←←←
5. If  you don't know  about the  program or what  this all  means, then
probably it is quite safe to type a space.

                                   8
Introduction to ITS                          II. Getting onto the System


Such  a file  can  eliminate many  of  the frustrations  of  logging in,
assuming  you always  use the  same type  of console  and want  the same
things to happen each time.  To have one of these files created for you,
contact ELLEN or  another member of the  Mathlab group.  (See  III.G and
III.H below).

        In addition, there is a special Initialization file  for MACSYMA
which will automatically load a MACSYMA for you, and make it unnecessary
for you to have to deal with DDT at all.  Its main advantage is  that it
handles the reattaching of your jobs for you should your  connection get
broken  by phone  noise or  network problems.   You may  have  this INIT
associated  with  your  login  name  if  you  wish  (it  is particularly
recommended for new users).  Contact ELLEN to have this done.




II.H. Experienced User Login Protocol

        When  you have  become quite  familiar with  the  login protocol
given above, and know fairly well the material in the DDT  section which
follows, you  may wish  to change  slightly the  way you  log in  to the
system.   Using :LOGIN  sets certain  variables within  the  DDT program
which are  intended to protect  novice users from  accidently destroying
their programs or  otherwise doing things  they might regret.   Once you
are sufficiently familiar with the various commands, and  appreciate the
↑K  command and  the :  command for  loading programs,  you may  find it
irritating to be asked each time you use one

--CLOBBER EXISTING JOB?--
or
--CREATE ADDITIONAL JOB?--

with the attendent delays to answer with a space.  Well, when  you reach
this point, you  are ready to graduate  to the "experienced  user" login
protocol which is

<login name>$U


$  represents the character  altmode (or escape, ascii 27  (decimal), 33
(octal)).  This method  of logging in  replaces :LOGIN <login  name> and
does not set the variables  which protect you from loading  excess jobs,
etc.  DDT will continue to tell you what the default file names  are for
↑O, however.










                                   9
III. DDT                                             Introduction to ITS


III. DDT
     ←←←

        After typing ↑Z you are communicating with a program  called DDT
(also called HACTRN) which is  the monitor level under ITS  that accepts
system commands for  performing various functions like  program loading,
program control, and copying and printing files.  There are  two formats
for commands  at DDT level;  the first is  called "Monitor"  format, and
this  format  is what  will  be  meant by  the  general  expression "DDT
command".   These  commands  begin  with  a  colon  and  are immediately
followed by the mnemonic name of the command with no intervening spaces.
Some commands take arguments, which are separated from the command  by a
space.  A command ends with a carriage return which causes DDT  to begin
execution.

        The second format for commands is a short form, consisting  of a
single character,  possibly prefixed  by 1 or  2 altmodes.   These short
commands  perform the  same  functions as  the  corresponding mnemonics.
When short form commands take arguments, these precede the  command with
no space  between the  argument and the  command.  Altmode,  (or escape)
which is ascii 27 (decimal), 33 (octal), will be represented in print by
$.  It  differs from "control"  in that  it is not  held down,  but just
typed.  The succeeding command character is not separated from  it, e.g.
                                            ←←←
$P.   On some  terminals altmode may not  be standard.  Right  brace, },
(ascii octal 175, or 176) is what you get when you push the key labelled
"altmode"   on   some   of  these   terminals.    The   :TCTYP  command,
:TCTYP STANDARDIZE tells the system to interpret ascii 175 and 176 as an
altmode.

        A few short form DDT commands are control-characters.

        The short forms  are easier to type,  of course, but  the novice
user is urged to become  familiar with the mnemonic DDT  commands first.
This permits the simple rule of thumb:

All commands to DDT begin with : and end with carriage return.
←←← ←←←←←←←← ←← ←←← ←←←←← ←←←← ← ←←← ←←← ←←←← ←←←←←←←← ←←←←←←




III.A. Program Loading and Execution

        One way to load and execute programs has already been mentioned,
e.g.  :MACSYM.   That is,  colon  followed  by the  program  name  and a
carriage return.   This is  consistent with  the rule  of thumb  for DDT
commands.   There is,  however, another  way to  load programs  which is
frequently  preferable:  type  the program  name  followed  by  ↑K, e.g.
MACSYM↑K.   The  reason  this  is  preferable  is  that  ↑K  causes  the
replacement of any  existing program you  may have loaded  called MACSYM
                    1
with a new  MACSYMA.   :MACSYM will load  a second MACSYMA, if  you have
                                            ←←←←←←

←←←←←←←←←←←←←←←
1. However, DDT may first ask you if you are sure this is what  you want
to do by typing --CLOBBER  EXISTING JOB?--.  You answer yes by  typing a

                                   10
Introduction to ITS                                             III. DDT


            2
one already.   In those rare circumstances where two copies of a program
are necessary, use the colon-type command, or better yet, load  one with
MACSYM↑K and the other with A↑K (and expect to be questioned about it by
a systems programmer at M.I.T.).

        To exit from a program, type ↑Z.  This will bring you back up to
DDT level.  For  the remainder of this  section it will be  assumed that
you are at DDT level, so if you wish to issue one of these  commands and
are not at DDT level, first type ↑Z to get up to DDT, and then  type the
    ←←←
command.  If you are  not sure what level you  are at, type ↑Z.   If you
were already at DDT  level, the system will  respond ?? and if  you were
not, you will be brought up to DDT and an interrupt message of some kind
will appear, usually [DDT] (but if you were in a TECO under your MACSYMA
it might say "(Console connected  to MACSYMA)", in which case  you would
need still another ↑Z to get to DDT).

        To re-enter a program, type :CONTIN.  $P is a short, easier form
for this.

        When you exit from a program, it stops running.  If you  want to
have  a program  resume  running while  you  remain at  DDT  level, type
:PROCEED after ↑Z.  ↑P is the short form for this.



III.B. "Jobs"

        The programs running "under" your DDT are referred to as "jobs".
It is possible  to have more than  one job and to  move from one  job to
another, leaving the first (a long computation in MACSYMA, for instance)
to run while you do something  else.  DDT will permit you to have  up to
eight jobs at one time,  but since the system can only  accomodate about
seventy  jobs for  all users  (including the  systems jobs),  it  is not
recommended to have more than two or three.  (Your DDT is one job, so as
soon as you load a MACSYMA  you have two jobs, your "top level"  DDT and
one "inferior").  When you have more than one job under your DDT,  it is
necessary to be able to tell which job is the "current" one, so  that if
you type :CONTIN  or $P you will be "in" it.  To see a list of  the jobs
you own at any  given time, type :LISTJ  (the short form is  $$V).  This
will give a list of all your jobs, with the current one marked by  an *.
Each job will be  followed by its status,  R for running, P  for stopped
but  "proceedable", or  W  for waiting  to  print out  something  on the
console.  The status will be followed by the index number for  that job,
which  is  a unique  number  assigned to  the  job by  the  system.  For
example:

        *TECO P 14
←←←←←←←←←←←←←←←
space. Typing anything else will "flush" the command, so if you  did not
mean to replace your MACSYMA, you get a second chance.

2.  But  since  you  rarely  want to  do  this,  DDT  will  ask --CREATE
ADDITIONAL JOB?--, and you reply space for yes, anything else for no.

                                   11
III. DDT                                             Introduction to ITS


         MACSYM R 23


III.C. Moving From One Job to the Next

        To move from one job to  the next, i.e. to make another  job the
current job, type :JOB.  The system will then tell you which job is then
current  by responding,  for example,  MACSYM$J.  Typing  a  sequence of
:JOB's  will cause  each job  to become  the current  job, in  turn.  An
alternative  to this  shuffling  through all  your  jobs to  get  to the
desired one  is to type  :JOB followed by  a space and  the name  of the
desired job, e.g.

:JOB MACSYM

This will cause the job with  this name to become the current  one.  The
short form of this command is $J, preceded by the job name to  specify a
particular  job,  e.g.  MACSYM$J.  Notice  that  :JOB  only  selects the
current job; you  still must type :CONTINUE  to enter it.   Warning:  if
you misspell the name of the  job, :JOB will create a new job  which you
                                                      ←←←
                  3
will have to kill.

        There is a shorthand for :JOB followed by :CONTINUE.  That is to
                                                                 4
type the  name of the  job you  wish to re-enter  followed by  ↑H , e.g.
MACSYM↑H.

        If you have left a job running with :PROCEED, it will inform you
when it is ready to print out by sending you a message, e.g.  JOB MACSYM
WANTS THE TTY.  It will then  wait for you to exit whatever job  you are
in, and enter it using ↑H or :JOB and :CONTINUE.



III.D. Getting Rid of Jobs

        To dispose of a job  that you no longer want, the  command :KILL
is used.  This kills the current job, so obviously care should  be taken
to assure that  the job you  want to KILL  is the current  job.  (:LISTJ
                                           ←←
will help you).  After a :KILL command, DDT will inform you which job is
then  current.  For  example if  you just  :KILLed your  TECO,  DDT will
select your MACSYMA (or whatever the next job is) and print

MACSYM$J





←←←←←←←←←←←←←←←
3. DDT will type "!" when a new job is created, as a warning.

4. ↑H is "backspace"

                                   12
Introduction to ITS                                             III. DDT


III.E. Disowned and Detached Jobs

        Occasionally it may  be necessary to  logout in order  to switch
terminals, or to permit someone  else to use your terminal, but  you may
have a job you  do not want to  lose, or which hasn't  finished running.
The thing to do is to detach yourself, or to disown the job.  There is a
difference between  these two.  Disowning  a job is  to merely  "cut" it
loose from your DDT while you are logged in.  It can be thought  of then
as floating loose in the system.   To do it, exit from the job  with ↑Z,
then type :DISOWN (If you want to leave it running, type :PROCEED before
:DISOWN).  If you log out while a job is disowned, it will wait  for you
(for a reasonable  length of time)  to log back  in and reclaim  it.  To
reclaim it use  the :JOB command followed  by the job name.   The system
will respond by typing

:$ REOWNED $

and it will then be reconnected to your DDT, and you can reenter it with
:CONTINUE.   Disowning running  jobs  is inconsiderate,  however.   If a
disowned job wants to  print out, it will not  be able to and  will just
stop.  This defeats the purpose of its existence and takes up a job slot
in the system.  What this  means is you should only disown  running jobs
when it is absolutely necessary.

        Detaching affects the entire  DDT and all the jobs  connected to
it.  Typing :DETACH will  log you out of  the system but leave  your DDT
and all your  jobs sitting there.  When  you log back in,  (assuming the
system has  not crashed  in the  interim) you  will receive  the message
--ATTACH YOUR DETACHED JOB--  and  should answer this by typing  a space
as  explained  in section  IX.D,  below.   When you  log  back  in after
disowning  a job,  you will  not receive  a message,  but  the continued
existence  of your  job can  be confirmed  by using  :PEEK  (see Section
VI.C), and you can then reclaim it with :JOB.



III.F. Quit Commands

        There are three Quit commands for DDT, ↑D  , ↑S, and  ↑G.  These
three have different functions.  ↑D  will abort a command that  you have
not completed typing.  This is useful if the wrong command was selected,
or a typing error has been made.  DDT will print "XXX?" and you may then
retype  the command.   ↑G will  stop the  execution of  a  command.  DDT
responds with  "QUIT?" and  execution stops.  This  is a  "panic button"
type  of  command, and  will  stop  infinite loops.   ↑S  will  stop the
printout which results from the execution of a command, e.g. the listing
of a directory.  ↑G is also the "quit" command for MACSYMA and TECO.

        However, when using any "quit" command, at DDT level or inside a
program, it should  be noted that due  to network delay typing  a "quit"
command from a TIP will not cause instant cessation of execution; rather
it may take  several seconds (or even  minutes) before the  quit command
takes effect.  It should also be  noted that a TIP has a  limited number


                                   13
III. DDT                                             Introduction to ITS


of  bits to  hold its  "interrupt" character,  so although  it  may seem
psychologically satisfying to type a long string of ↑G's,  they overflow
(and clear) the interrupt bit, actually cancelling each other out.



III.G. Communication

        A  very  useful  aid  to  a  MACSYMA  user  is  the  ability  to
communicate on-line and receive assistance in this fashion.  This is the
best way to get help  with specific MACSYMA problems, because  a MACSYMA
Programmer at MIT  can have access to  your current MACSYMA  and examine
your expressions.   He (or she)  can also use  your console  remotely to
demonstrate various solutions for you.

        There are two ways to communicate: one-way  communication, using
the command :SEND, and two-way communication in which the user links his
terminal to that of another user and the typing of either one appears on
both.  A list of people  who can answer questions for you  is available.
Type

:PRINT ALJABR;MACSYM HELP

        Of course, to  communicate with someone,  he must be  logged in.
To determine who is logged in at any given time, type :USERS and  a list
of the current users will  be printed out.  Alternatively, :NAME  can be
used, which is described in section VI.A, below.

        To send a one-way  message to another user, type  :SEND followed
by a space and the login name of the person to whom the message is being
sent.  Then type the message.  It  may be more than one line  long.  End
it with ↑C.  For example:

:SEND JPG HOW DO I GET MACSYMA TO
INVERT A MATRIX?↑C

This will result in a message on JPG's terminal that says

[MESSAGE FROM <login name> at <machine name><time>]
HOW DO I GET MACSYMA TO
INVERT A MATRIX?

:SEND can also be used to send messages to people who are not logged in.
In this case, DDT will add (MAIL) either after the login name or  at the
end of the message and the message will be saved as MAIL until  the user
logs in (see H. below).  To explicitly send someone mail (whether or not
they are logged  in), :MAIL is  used.  It has  the same format  as :SEND
except that the message is saved as MAIL for the addressee.

        Often, it is more convenient to interrupt another user and enter





                                   14
Introduction to ITS                                             III. DDT


                                                 5
direct   two  way   communication  with   him.       To   enter  two-way
communication,  type ↑←C  and the  login name  of the  user you  wish to
communicate  with.   That is  control-backarrow,  or control-underscore,
followed immediately with a C and then the login name of the user  to be
communicated with and a carriage  return.  On many terminals ↑←  will be
control-shift-of-the-letter-O.  However, on some terminals the backarrow
or  underscore may  not  have the  proper  effect when  used  as control
characters.  On  some Texas  Instrument Silent  700's, for  example, the
effect of ↑← is achieved with ↑?.  On a CDI Teleterm it is control-shift
of zero. (The octal  ascii value for ↑←  is 37, decimal 31.)  The normal
response by the system to the command is OK, which means your console is
linked to the other user's and the typing on either one appears on both.
To terminate the link type ↑←N.  Other responses to ↑←C<login  name> may
be QUERYING, meaning the other person is in "Query mode" and  may accept
or reject your  link (while you  wait for him  to decide you  may simply
wait, type ↑G (bell) to attract his attention, or type ↑←N and try again
later),  or  IN  COMMUNICATE  WITH  ←←←←,  BREAK  IN?  (to  answer  that
affirmatively, type Y; negatively, N).  The response "?" means  that the
person is not logged in, or you spelled his login name wrong.

        Two way communication  (or communicate  mode) may  be recognized
when a message appears on your console saying

                       6
LINK FROM <login name> 

A one way (:SEND) message always says

[MESSAGE FROM <login name> at <machine>]
        or
TTY MESSAGE FROM <login name>

On printing terminals a one way message will appear only once, but  on a
display (CRT) terminal  the message may continue  to repeat itself  if a
job has control  of the console  (i.e. the user is  in a job)  since the
output of  the job could  write over and  obliterate the  message.  This
repetition can be stopped by simply typing ↑Z :CONTIN, i.e. by  going up
to DDT level (at which point  DDT will print the message one  last time)
and then re-entering  the job.  If DDT  has control of the  console, the
message will appear only once.   Note, if you "lose" a  message (because
output from a job obliterates it, or your paper jams), it is  not really

←←←←←←←←←←←←←←←
5.  When  asking  for  help  on  complex  MACSYMA  questions,  :SEND  is
preferred,  since  all  messages  sent by  :SEND  are  saved  during the
recipient's console session in a file on the .TEMP.; directory.  Thus he
or she will have a record of any pertinent information relative  to your
problem.  The MACSYMA  Programmer will very likely  communicate directly
with you, however.

6. Note, although two  way communications announce themselves  with LINK
FROM, they are in no way related to the :LINK command, which links files
                  ←← ←←←
together.

                                   15
III. DDT                                             Introduction to ITS


lost.  All  messages sent  to you  are saved  in the  file .TEMP.;<login
name> SENDS, and you can read  them by printing this file, or  simply be
typing (at DDT level)

:PRSENDS
        or
↑A


        Communications of any sort do  not disrupt the job which  may be
running, in control  of your console.  It  will resume any print  out as
soon  as  you  are  finished.   Remember,  to  respond  to  a   one  way
communication, you must first be at DDT level (i.e. type ↑Z)

        Occasionally you may find you want to print out a  long function
or a file and you do  not want the printout interrupted by  any messages
which might be sent to you.  This can be accomplished using the command

:GAG 0

which  will inhibit  all  communications to  you.  Then  print  out your
material.  After your print out is completed, type

:GAG 17

to reset  things.  Any  messages sent to  you during  the time  you were
"gagged" will be saved as MAIL for you.

        If for some  reason you do  not wish to  be bothered by  two way
communications from  other users,  there are  commands to  control them.
The first is the default,  ↑←A, (which stands for "Accept").  It  is the
standard state and means that you can be communicated with.   The second
is ↑←Q  (which stands for  "Query").  Typing ↑←Q  will set your  DDT and
your jobs in a state such that if someone tries to communicate with you,
you will just be told  about it.  You type ↑←Y to  accept communication,
↑←Z to refuse, and ↑←Q to  ask who is querying.  To reset things  to the
standard state, type ↑←A.  The third is ↑←R (which stands for "Refuse").
Typing ↑←R  at DDT level  will cause all  communications to  be refused.
↑←A  resets   things.   Novice   users  are   advised  not   to  inhibit
communications, since they may  accidently cut themselves off  from help
thereby.

        One other method of communication should also be  mentioned.  It
is called  :SHOUT.  As the  name implies,  it is a  message sent  to all
currently logged in  users.  Its syntax is  similar to that of  :SEND or
:MAIL,  except  that  no  login  name  is  specified.   A  SHOUT  can be
recognized because it will contain the word EVERYBODY,

[MESSAGE FROM <login name> EVERYBODY:]

These messages often appear when the system is being used heavily and 1)




                                   16
Introduction to ITS                                             III. DDT


                                                            7
all the job slots are in use, or 2) disk space is very  low.  Obviously,
if you have an  extra job you are not  using, or three copies of  a file
you don't need, heed such a message.




III.H. Messages and Mail

        Messages of  general interest are  sometimes put on  the system.
When you log in for the first time the message

TO SEE SYSTEM MESSAGES DO ":MSGS<CR>"

will be printed on the terminal.  Once you have typed :MSGS  followed by
a carriage return, the system will set up a message date for  your login
name.  The  next time you  log in,  if there are  any new  messages, the
system will print --MSGS-- and you have only to type a space to have the
messages displayed (each time  it says --MORE--, type space  to continue
the  display). Typing  carriage  return will  cause the  messages  to be
"postponed" until the next time.  Typing rub-out will cause that message
to be skipped over (i.e. you will never see it).  A message is something
sent to the user community at large.

        If when you  log in the system  prints --MAIL-- this  means that
there is  a private communication  just for you,  and once  again typing
space will cause  the mail to be  displayed, while typing  anything else
will postpone it.  To check someone else's mail, for instance to  see if
he has seen a message you sent him, type :PRMAIL followed by a space and
the login name of the user whose mail you want to check.  Typing :PRMAIL
with your  own login name  will display your  own mail.   Typing :PRMAIL
with no  login name will  also display your  own mail.  The  system will
then offer  to delete  your mail for  you.  Typing  a space  will answer
"yes";  a carriage  return will  answer "no"  (i.e.  your  mail  will be
deleted if you type a space,  and saved if you type a  carriage return).
                                                           8
Note, typing :PRMAIL SKL will not delete SKL's MAIL file.  
                              ←←←

        There is a program  specially designed for reading  mail, :RMAIL
(Read MAIL).  It will show you one message at a time, permitting  you to
delete or save messages selectively, as well as peruse previous mail for
replying or  other action.   When you exit  from it  (or should  you get
disconnected, log out accidently, or otherwise "screwup") it  writes the
file <directory>;<login name> RMAIL, so it is very hard to  "lose" mail.
                                              ←←←←

←←←←←←←←←←←←←←←
7. :SHOUT should not be used except in such emergency situations,  as in
other situations it can be extremely bothersome to other users.

8. The file on the .TEMP.;  directory in which all the messages  sent to
you with :SEND are saved during your console session is deleted when you
log out.  If you wish to re-read these messages before you log out, type
:PRINT .TEMP.;<login name> SENDS, :PRSENDS, or ↑A.

                                   17
III. DDT                                             Introduction to ITS


For  more information  about  it use  the :INFO  program  (section VII.C
below).



III.I. MACSYM Mail

        There  is a  special MAIL  file for  MACSYMA, in  which  you may
report bugs,  questions, problems, or  suggestions for features.   To do
this, you type :MAIL  MACSYM followed by the  message and end it  with a
                                         9
↑C, just as for any other :MAIL  or :SEND .  This file is  checked daily
by system  programmers. They  will answer your  questions or  attempt to
locate and fix  any bugs you report.   When bugs are fixed,  your report
will be deleted from MACSYMA mail,  and mail will be sent to you  by the
person who fixes the bug.   To read the MACSYMA mail file,  type :PRMAIL
MACSYM.

        When new features are added to MACSYMA, this will be reported in
the update file.  To read this file, type :PRINT MACSYM;UPDATE >.




III.J. Other DDT Commands

        A complete list of the DDT commands can be obtained by typing

:?

        To respond to questions or messages from DDT of the form

--MESSAGE--

you should type a space for yes, and carriage return or  rubout (delete)
for no.

        A note about question marks:  a ? at DDT level is not  a request
        ← ←←←← ←←←←← ←←←←←←←← ←←←←←
for an answer from the user (things requiring an answer are of  the form
--Question?-- as  mentioned in the  preceding paragraph).   The question
mark is a  prompt indicating that the  machine is waiting for  your next
command.  A particularly confusing sequence occurs when the system asks

        --CLOBBER EXISTING JOB?--


and the user,  realizing he wants to  type :CONTINUE instead  of loading
the job again, hits a carriage return.  The system responds

FLUSHED?


←←←←←←←←←←←←←←←
9. You can also use the MAIL("message"); command in MACSYMA.

                                   18
Introduction to ITS                                             III. DDT


which  appears  to  be a  question  (or  perhaps for  those  of  us more
anthropomorphically inclined, an incredulous comment by the system, "You
want that flushed?").  In fact, it is two outputs:  the report "FLUSHED"
                                      ←←←
refering to the user's request to load a job, and the prompt "?" meaning
"OK, now what?"  Another case similar to this is the

        --ATTACH YOUR DETACHED TREE--


problem.  The "FLUSHED?" in this  case is likewise two outputs,  and how
to proceed is explained in section IX.D.












































                                   19
IV. Introduction to and Description of Files         Introduction to ITS


IV. Introduction to and Description of Files
    ←←←←←←←←←←←← ←← ←←← ←←←←←←←←←←← ←← ←←←←←

        A file is  simply an area on  a particular storage  device which
contains data or text.  The  only storage devices which are used  on the
MC machine are disks and tapes.

        Files on the disks are figuratively grouped  into "directories".
A directory is just  a list of all the  files stored under a  given user
name.



IV.A. File Names

        Files in  the ITS system  possess two names,  each of at  most 6
characters.  They are referenced by giving the two names as well  as the
device (default is DSK:) and the directory name where the  file resides.
A device is  usually a machine name,  meaning the disk of  that machine.
The device name DSK: is the disk of the machine you are using.   Thus on
MC,  either DSK:  or MC:  means  MC's disks.   A device  name  is always
followed by  a colon.  A  directory name is  always followed by  a semi-
colon.   Your directory  is determined  when you  login: if  you  have a
directory of your  own, its name  will be the  same as your  login name;
otherwise it is the default  specified in your INQUIR entry, if  one was
specified; if none was specified, you will be assigned by the  system to
a "home directory" called USERSn; where n is a digit from 1 to  5.  File
names are up to six characters  long and separated by spaces.  A  > sign
may be used for  the second file name and  stands for the name  which is
the largest numerically if there exists a file with the given first name
and  a  numeric  second  name;  otherwise  the  >  sign  represents  the
"greatest" name  in an alphanumeric  sense.  A <  sign may  be similarly
used  for the  "least"  name.  The  device  (followed by  a  colon), the
directory name (followed by a semi-colon), and the file names (separated
by a space) may appear anywhere in the file descriptor string.  Thus for
example both

INTRO 4 DSK:RAB;
RAB;DSK:INTRO 4

are equivalent descriptions.  However, the most usual description is

DSK:RAB;INTRO 4.

Any of the four descriptors (1st name, 2nd name, device,  directory) may
be omitted  and either  the default, or  the value  given in  a previous
command (if there was one given) will be used.  Notice that at DDT level
the "usual" way to reference this file is:

        DSK:RAB;INTRO 4


while in MACSYMA the two file names are given first and then  the device
and directory,


                                   20
Introduction to ITS         IV. Introduction to and Description of Files


        (INTRO, 4, DSK, RAB).


i.e.  (filename1,filename2,device,directory), which  corresponds  to the
                                1
DDT ordering:  INTRO 4 DSK:RAB;.




IV.B. Directories


        A list of all the files on any directory can be seen  by typing,
:LISTF followed by  a space and the  directory name.  The short  form of
this is the  directory name followed by  ↑F.  A typical  directory looks
like this:

MC      USERS1;
FREE BLOCKS #0=523 - #1=479 - #13=585
  1     AK      DATA    2   5/22/78 09:35:24
  0     AK      LOGIN   1  !12/14/78 08:34:29
  L     AK1     3       BACKUP TAPE 175
  0     BH      MAIL    1   10/1/78 14:21:09
  0     BQS     MATRIX  16  7/3/78 16:48:25
  1     CEH     F2      10  !12/14/78 11:48:30
 13     DUFF    A3      6   11/21/78 10:35:15

The top line shows the device (MC is a synonym for DSK, referring to the
MC machine) and the directory  name.  The next line shows the  number of
free blocks (for all users) on each of the three disks.  If  the numbers
        2
are  low , it  indicates that  disk space  is short,  and you  should be
careful about  creating files  you really do  not need.   Following this
there will be a line for each file on the directory, with  the following
information: The number of the disk on which that file resides (0,1,13),
the two file names of the  file (e.g. DUFF A3, or AK LOGIN),  the length
of the  file in  blocks (a  "block" is  up to  5120 characters,  or 1024
words, corresponding  to approximately two  single spaced  typed pages),
and the date  and time of  creation of the  file.  Some files  will have
BACKUP TAPE, with a number, instead of a creation date.  This means that
the file has been transferred  to tape (notice that the file  above that
is listed as on BACKUP TAPE does not have a disk number, but  rather the
letter L), and  deleted from the  disk. A file  on tape can  be reloaded
into the system.  All  files on the disk  are copied onto tape  (but not
deleted from the disk) regularly, about three times a week.   Files that

←←←←←←←←←←←←←←←
1. A new feature in MACSYMA  allows you to type DDT style file  names in
MACSYMA commands which accept file names, by enclosing them in quotation
marks, and by preceding  the ";" with a "\",  e.g. LOADFILE("USERS1\;CEH
F2");  or SAVE(["USERS4\;ZHT OUTPUT"],FUNCTIONS);

2. In the case of the MC machine, less than 300 blocks per disk.

                                   21
IV. Introduction to and Description of Files         Introduction to ITS


have not been  "accessed", i.e. used, as  indicated by the date  of last
reference (not visible  when the directory  is listed, but  available to
the "Grim File Reaper") for a long time are moved to disk #13,  which is
a  "secondary" pack.   They  are still  accessible in  exactly  the same
manner as files  on the regular  disks, however if  a disk drive  is not
working,  the  secondary  pack  may  be  demounted  until  the  drive is
repaired,  in which  case  those files  on  it would  not  be accessible
temporarily.  Files that  have not been accessed  in a longer  period of
time are deleted  in "grim file reaps",  but only after being  dumped on
     3
tape.  Such a file can be  reloaded, if need be (see below).  If  a file
is accidently deleted, or somehow  lost in a system crash, it  can often
be recovered  from tape.   Notice the  file above  called CEH  F2.  Just
before the date there is an !.  That indicates that the file has not yet
been copied onto tape.  Any file that does not have an ! in front of its
date will appear somewhere on  tape and if deleted can be  reloaded.  To
have a file reloaded, it is necessary to communicate with someone in the
Mathlab Group at the Laboratory for Computer Science who is logged in on
the 8th or 9th floors (see VI.A below for how to tell where  someone is)
and ask them to reload the file for you.  You must specify the directory
and both file names.

        The  USERSn directory  is  the default  for people  who  have no
directory of their  own or do not  have another group directory  to use.
When using a USERSn or any other group directory, the first file name of
any file you put there should be your login name.  This  permits quickly
figuring out  what belongs to  whom.  If you  allow MACSYMA to  select a
file name for you, it will  choose the first 3 characters of  your login
name, and append a digit to it (the lowest digit which insures  a unique
file name), using > as the second name, e.g. the file AK1 3  above.  You
are probably better  off specifying names  yourself, but you  can always
rename the files MACSYMA names for you.

        Directories tend to be fairly long.  The average group directory
may have something more than 100 files on it.  If your login name begins
with a W, you are going to have to watch a lot of paper roll past before
you get to your files if  you just use :LISTF.  There is another  way to
look at just those  files with a certain  file name (your login  name in
this case):  type

<login name>$$↑F


and only those files on  your default directory with your login  name as
first    file    name    will   be    displayed.     That    is   <login
name><altmode><altmode><control-F>.




←←←←←←←←←←←←←←←
3. Precise time periods vary  depending on how heavy the disk  usage is.
In general 2 or 3 months is the average lifetime of a file which  is not
being used.  In any case, these files can still be retrieved.

                                   22
Introduction to ITS         IV. Introduction to and Description of Files


IV.C. File Manipulation: Printing, Copying, Renaming, Deleting

        Files may  be moved  from directory  to directory,  renamed, and
printed out.  To move a  file from one directory to another,  type :COPY
followed by  the directory name  and the two  file names and  a carriage
return.  The system will prompt  with TO: after which the  new directory
name should  be typed, followed  by a carriage  return.  If no  new file
names are designated, the system will assume the default names, i.e. the
same names; however,  a new name  may be given  the file if  so desired.
For example:  If RAB has files ITS 57, ITS 58, and ITS 59,

:COPY RAB;ITS >
TO:ELLEN;

will copy  the file ITS  59 from RAB's  directory to  ELLEN's directory,
still calling it  ITS >.  If  ELLEN doesn't have  a file called  ITS, it
will be ITS 1.

:COPY RAB;ITS >
TO:ELLEN;FOO >

will copy  the file ITS  59 from RAB's  directory to  ELLEN's directory,
(without deleting it from RAB's  directory) but name it FOO > on ELLEN's
directory.   To  just rename  a  file without  moving  it,  type :RENAME
followed by the  directory and file names  and a carriage  return.  Once
again, the system will prompt with TO: and the new name should be typed.
To print out a listing of a file, type :PRINT followed by  the directory
and the file names  and a carriage return.   The short form for  this is
↑R, which is followed by the directory and file names as usual, e.g.

:PRINT ELLEN;FOO 29

or

↑R ELLEN;FOO 29

        Files that are outdated or  no longer needed can be  deleted, of
course.  To do this type :DELETE followed by the directory and  the file
names, and  a carriage  return.  A shorter  form is  ↑O followed  by the
directory and file names.  Great  caution should be used with the  ↑O or
:DELETE command, lest you delete a file you didn't intend  to.  However,
if  this should  happen,  it can  sometimes  be retrieved  from  tape as
described above.  If you type ↑O by accident, type ↑D to abort it.



IV.D. FIND

        Most directories are  quite long.  On  a slow terminal  they can
take a long  time to list  (and a lot  of paper).  To  locate particular
files, without listing  an entire directory,  there is a  program called
FIND.  :FIND takes 4 arguments, which are the device, the directory, and
the two file names (the default device is DSK: and the default directory


                                   23
IV. Introduction to and Description of Files         Introduction to ITS


is "all directories").  Any of  the four arguments may be replaced  by *
and  FIND  will  proceed   to  locate  all  occurrences  of   the  given
specifications, taking the * as a "wild card" which will match anything.
For example:

     :FIND USERS4;SKL *
will  find  and  print on  your  console  all the  files  on  the USERS4
directory that have SKL as their first file name.  Similarly:

     :FIND SKL *
will find all the  files on any directory  with SKL as their  first file
name, and print out the list  on your console.  This is another  way for
people using a USERSn directory  (or any other group directory)  to list
just their own files with

:FIND USERSn;<login name> *

Of course,  as with  any :  type command,  a carriage  return terminates
that.

        Type

:FIND ?


to find out about additional features and options of FIND.




IV.E. Altmode, or Defaults made easy

        The  character  altmode  can  be typed  after  any  of  the file
manipulating commands (COPY, PRINT, DELETE, RENAME) and the  result will
be that the DDT will print out the default file specification.   If, for
instance, you type

:COPY $

DDT might respond, for example:

USERS3;JRN FOO

meaning that USERS3;JRN  FOO are the current  defaults.  If you  want to
COPY the file JRN FOO, you just type a carriage return.  However, if you
would like to COPY the file USERS3;FOO BAR, you simply type the new file
names, FOO  BAR, and then  the carriage return.   Suppose you  wanted to
COPY the  file JRN  OMAIL, but  it was  on FOO;  not USERS3;.   Then you
simply type FOO; and  a carriage return.  (If  you don't want to  COPY a
file after all, type ↑D).

        Since  the  device  is  always  followed  by  a  colon,  and the
directory name by  a semi-colon, there can  be no confusion  about those


                                   24
Introduction to ITS         IV. Introduction to and Description of Files


two.   The file  names  are always  separated  by spaces,  and  all that
remains is to  be able to  designate to DDT whether  it is the  first or
second file name we wish to change (assuming we are not  changing both).
Let us assume  that we do  not want to  COPY USERS3;JRN FOO,  but rather
USERS3;JRN 23.   The device  and the  directory are  correct, as  is the
first file name.  We  wish to change only  the second file name.   So we
type

↑X23


Typing  ↑X  is the  same  as typing  the  default first  file  name; ↑Y,
represents the default second file name.  Thus in this case ↑X23  is the
same as JRN 23.   If we had typed ↑Y↑X,  it would have been the  same as
FOO JRN, etc.  If you are skeptical (and it is wise to be), you may type
altmode again after you have altered the default file  specification, to
check that it is correct, changing it still further if so desired:


:COPY $

DSK:USERS;JRN MAIL

to which you type

↑X23$

to which the DDT responds

DSK:USERS;JRN 23

which is what you want, so you type carriage return.

        For certain "dangerous" commands, such as ↑O (the short form for
:DELETE,   the  file   deletion  command),   DDT  supplies   an  altmode
automatically to be sure you realize what you are doing.



















                                   25
V. TECO                                              Introduction to ITS


V. TECO
   ←←←←

        Teco is the text editor.  It is useful for preparing batch files
and/or papers.   After loading  it with TECO↑K  or :TECO,  you are  in a
program that handles text strings  and operates on them.  You  have what
is called a  "buffer" into which you  insert text.  By  issuing commands
you  can add  to or  otherwise change  the contents  of the  buffer.  By
issuing other commands, you can  file the contents of the buffer  on the
disk.  For papers and reports there are a variety of formatting commands
which can be  used to justify the  text for output on  whatever printing
device you have available.  The commands typed do not enter  the buffer;
only those characters following the "insert" command go into the buffer.
You can then correct typing, or other errors.  For instance, a series of
commands for  MACSYMA could  be prepared  thus, filed  on the  disk, and
finally loaded into MACSYMA using the BATCH command.

        The TECO  language itself was  originally designed partly  as an
editing  language  and  partly  as  a  programming  language,   so  that
repetitive  editing programs  could be  written.  When  display consoles
became  available,  special display  editing  packages  were implemented
using  the TECO  programming language.   They are  much better  than the
original TECO editing language  on display consoles, but they  work only
marginally  on  printing  consoles.   So  this  documentation  will deal
primarily with the  original TECO editing  language and only  in passing
with the display modes (commonly called "Control-R" modes).  If  you are
going to  be using  TECO from  a display  console you  should definitely
learn  how  to  use  one of  these  display  editing  packages  and take
advantage of all the capabilities of your console.  You can  learn about
the most commonly  used package on MC  by looking at  its documentation.
Type

:PRINT EMACS;EMACS CHART

You can try out EMACS or simply by typing

:EMACS

which will start up  a TECO for you (which  will be have its  "job name"
EMACS) using  that package.   (:E is the  short form  for this).   For a
primer on EMACS,  you can type  :TEACHE.  And more  complete infomration
can be gotten in the :INFO program (see section VII.C).


V.A. File Preparation

        TECO  may  be loaded  by  typing :TECO  followed  by  a carriage
return, or  by typing  TECO↑K.  (:T and  T↑K are  short forms  for these
     1
two).   In  standard  TECO the  full  set  of keys  on  the  keyboard is
←←←←←←←←←←←←←←←
1. In MACSYMA it is possible to load a TECO under your MACSYMA by giving
                                            ←←←←←
the MACSYMA command TECO();. Similarly EMACS(); starts up an EMACS under
your MACSYMA. In this case, ↑Z  will bring you back up to  your MACSYMA,
and TECO(); again will return you to TECO.

                                   26
Introduction to ITS                                              V. TECO


available for editing commands.  Insertion of text is done by use of the
                                                                       2
command  "I" which  takes the  following text  string as  its argument.
Commands  in  TECO are  terminated  by two  altmodes.   The preprocessor
processes the string, handling rubouts, until it encounters  an altmode.
It does not begin  execution, however until it encounters  two altmodes.
Thus, single  altmodes may be  used within a  command string  to delimit
Search or Insert strings.
←         ←

        Your location in the buffer is marked by a pointer,  referred to
as  "the cursor".   Initially its  position is  at the  very top  of the
       3
buffer.   Editing commands can change its position.  The  Insert command
                                                          ←
inserts the following  text string and leaves  the cursor at the  end of
                                                                  ←←←
the inserted string.  The  Search command locates the  following string,
                           ←
and leaves the cursor at the end of it.  The -S (reverse search) command
                             ←←←             ←←
leaves the cursor at the beginning of the sought for string.
                         ←←←←←←←←←
































←←←←←←←←←←←←←←←
2.  In  the special  display  packages, all  the  characters  are  self-
inserting and editing commands are available as "control" characters.

3. On a display console it will appear as /\

                                   27
V. TECO                                              Introduction to ITS


V.B. Editing Commands

        A list of  the most commonly  used editing commands,  in regular
mode, follows:

effect of command                           command
←←←←←← ←← ←←←←←←←                           ←←←←←←←
advance cursor one line                     L
go back one line                            -L
move one character to the right             C
move one character to the left              -C or R
delete one character                        D
   (the next character after the
   cursor)
kill from cursor position to end of         K
   line (including carriage return
   and line feed)
kill from cursor position to end of         :K
   line (retaining carriage return
   and line feed)
kill from cursor position to beginning      0K
   of line
move to the beginning of the line           0L
move to the end of the line                 :L
redisplay screen (on a display terminal)    ↑L
move to the top of the buffer               J
move to the end of the buffer               ZJ
move right one word                         FWR
move left one word                          -FWR
kill to the end of the buffer               ZK

Commands that take string arguments:
   to insert text                           I
   to search forward                        S
    (i.e. over text beyond cursor position)
   to search backward                       -S
    (i.e. over text that is before cursor position)

Commands pertaining to printing terminals
   to type out the whole buffer             HT
   to type out the current line             0TT
     (without moving the cursor)
   to type out the current line             0LT
     (moving cursor to beginning of line)
   to type out n lines                      nTT
   to automatically type out three lines    :3↑N
     each time two altmodes are typed

 Quit, or cancel command string typed       ↑G
     (but not executed yet)






                                   28
Introduction to ITS                                              V. TECO


        Commands may be prefixed by a numerical argument  indicating the
number of repetitions, e.g. 4L would advance the cursor four  lines, -4L
would move it up four lines.

        The  Insert and  Search commands  take the  following  string of
             ←           ←
characters, including spaces, carriage returns, and tabs, and  insert or
locate them respectively, e.g.  Iany string$$ would insert  "any string"
into the buffer.

        The  command :3↑N  is a  switch (giving  it a  second  time will
reverse  the  condition).  It  is  given  once and  has  effect  for the
duration of the TECO you  have loaded (unless you turn it  off).  Notice
that in spite  of beginning with a  :, it is a  TECO command, not  a DDT
                                                              ←←←
command.  It is particularly useful  because it prints out the  line the
cursor is on and the next  two lines, each time two altmodes  are typed,
if the cursor is in the middle of the text.  The position of  the cursor
will be shown by -!-.  If the cursor is at the end of the buffer  (as in
a file that you are in  the process of typing in) the last  three buffer
lines will be typed  out, and the cursor  position will be shown  by the
location of the ampersand that is the TECO "ready" symbol.

        ↑G is a  quit command.  It will  stop an infinite loop  (e.g. an
iterative search without proper terminating conditions) or it will flush
an entire command string which you have not yet executed.

        There are approximately 400 other Teco commands; the most up-to-
                                                                    4
date listing of them can be had by printing out DSK:.INFO.;TECORD >.



V.C. Filing in Teco


        "Filing" is the process of  storing the edited text which  is in
your buffer  in a disk  file where it  will stay permanently  (until the
file is deleted).  If  you do not have  your own directory, you  may use
the USERS directory which is set aside for MACSYMA users who do not have
directories.   All the  TECO commands  that deal  with files  and filing
begin with E.  The ones you will  need to deal with are EW, ER,  EE, EF,
EY,  ET and  ED.   The specifications  for  file names  have  been given
already.   By using  the >  convention you  can avoid  writing  over and
thereby  obliterating a  previous copy  of a  file.  This  is especially
useful if it becomes necessary  to return to a previous version  to undo
an "improvement" that didn't work out.  However, it is "good manners" to
delete extra  copies of files  before logging out.   There is a  rule of

←←←←←←←←←←←←←←←
4. Those familiar with the MACSYMA editor will note that it  was largely
based on TECO.  Note, however, that the commands which cause display and
printout in the MACSYMA editor  are quite different from those  in TECO,
there are  some commands  in the  MACSYMA editor  for insertion  of text
which do  not exist  in TECO,  and TECO's  commands for  manipulation of
parenthesized expressions are entirely different.

                                   29
V. TECO                                              Introduction to ITS


thumb that two copies of  the same source file are enough...and  the GFR
(Grim File Reaper) will delete all but the two most recent if  you don't
do it yourself.

        There are  two common  protocols for filing  things from  a Teco
buffer.  The first is: EW<directory>;$EE<filename1> <filename2>$$.  This
files  the  whole buffer  in  the specified  directory.  The  second is:
EW<directory>;$HPEF<filename1> <filename2>$$.  This files a copy  of the
whole buffer in the specified  directory but leaves the contents  of the
buffer intact.  You are at the  same location in the buffer you  were at
previous to  filing and  can continue working.   On a  display terminal,
typing $$ will show you the buffer again.

        To "yank" a file from a directory into the buffer, the following
protocol is used:  ER<directory>;<filename1> <filename2>$↑Y$$.  Note, in
this case  ↑ is  uparrow (ascii decimal  value 94,  octal 136),  and not
                 ←←←←←←←                                             ←←←
control.  Once you have specified a directory name and some  file names,
they become the defaults.  Unless  you want to change them, they  can be
omitted from subsequent ER,EW,EE,EF, etc. commands.

        To list a directory while  you are in TECO, type EY  followed by
the directory name and a semi-colon, thus:

EYELLEN;$$

This does not disrupt or modify  your buffer; you are still in  the same
place ($$ will redisplay the buffer on a display console).

        When you are inputting a lot of data, it is advisable  to "file"
it away every fifteen minutes or  so to minimize the amount of  work you
will lose if the system crashes while it is all in your buffer.  Using >
as the second file name, you can set up a default file name with  the ET
command, thus:

ETUSERS;JRN >$$

Then after you have inserted your  data for a few minutes, you  can type
EW$HPEF$$, and a copy of what  you have just done will be filed  on disk
in the USERS  directory as JRN  1 (it is  recommended that you  make the
first file name of  a file you place  on the USERS directory  your login
name;  you can  then  rename it  when it  is  complete to  JRN  DATA, or
whatever  name  you  find  descriptive).   Then  type  $$  and  continue
inserting data.  This process  is repeated until you have  completed the
file.  Then you can delete  all but the largest file, renaming  that one
if you wish.  Note that it is possible to designate files to  be deleted
using < as the  second file name, but it  is very easy to  miscount <'s,
and using the specific file names, (e.g. USERS;JRN 15) is safer.

        The :DELETE command is used at DDT level, but it is  possible to
delete  files while  you are  in TECO.  The ED  command followed  by the
directory and  file names  and terminated  by two  altmodes will  do it,
thus:

EDUSERS;JRN 15$$

                                   30
Introduction to ITS                                              V. TECO


(Be sure to  do ETJRN >$$  so that your  default name doesn't  stay "JRN
15").




V.D. TECO Example

        Here  is an  example  showing how  to  create a  batch  file for
loading into MACSYMA.  Everything you would type on your console will be
shown in lower case, at the left margin, thus:

foo

Everything the system responds or  types out will be shown  indented, in
capital letters, thus:

     BAR

Explanatory comments will be  shown following a semi-colon, on  the line
they explain, thus:

                                        ;explanatory comment.


:teco                                  ;load TECO

    TECO 445.
    *

iexp(2*x)*sin(x)↑2;                    ;insert a command line
dif(%,x);                              ;and another one
$$                                     ;end the Insert command
                                                ←
    *

-LTT$$                                 ;go back one line and type it out

    DIF(%,X);
    *

3c$$                                   ;move 3 characters to the right

                                                        5
if$$                                   ;insert another f

0tt$$                                  ;type out the line

    DIFF(%,X);
    *

←←←←←←←←←←←←←←←
5. Note  that the last  two commands could  have been  written together,
thus:
 3cif$$

                                   31
V. TECO                                              Introduction to ITS


ht$$                                   ;type out the entire buffer

    EXP(2*X)*SIN(X)↑2;
    DIFF(%,X);
    *

ewusers;$eejrn de$$                    ;file it away as JRN DE on USERS;




V.E. Other TECO Facilities

        There are numerous facilities available in the  TECO programming
language, but  two of the  more useful for  editing are  Q-registers and
Iteration.

        Q-registers can be thought of as pigeon holes in which  to stick
useful things, much  like the numbered holes  behind the desk at  an old
fashioned hotel.  The pigeon holes available to you in TECO are the keys
on your keyboard, that is to say that there are Q-registers 0  through 9
and A thru Z  (there are also registers  .A through .Z, and  ..A through
..Z, but these contain special  features of the TECO program  itself, or
of special macro packages).  You can copy something into a Q-register so
as to be able to insert it repetitively.  You can remove a piece of text
from  its  location,  store  it in  a  Q-register,  and  then  insert it
someplace  else.   You  can  use  Q-registers  for  various  bookkeeping
operations you might want to do (counting the number of lines in a file,
for example).  You  can use a  Q-register to store  a macro, such  as an
iterative  search,  which you  want  to have  operate  over  your entire
buffer, or a portion of your buffer.

        There are four basic commands which refer to Q-registers:

X       Copy text into Q-register
U       Place numeric value into Q-register
G       Get the contents of Q-register and insert in buffer
M       Execute (Macro) the contents of Q-register

The two commands X and U take arguments of the form

<what>X<where> or <number>U<where>


<where>  is the  name of  a  Q-register.  <what>  may be  either  of the
following

1. a number of lines (e.g. 3X1 -> copy the next three lines into
        Q-register 1)
2. A range of the buffer (e.g. Q2,.X4 -> copy from the point (location)
        in Q-register 2 to the current location into Q-register 4)

and the <number> may be either of the following:


                                   32
Introduction to ITS                                              V. TECO


1. an integer (e.g. 0U1 -> put zero into Q-register 1)

2. a location (e.g. .U2 -> put the current location into Q-register 2)

The location  of the cursor  in the buffer  is calculated  in characters
from the beginning of the buffer.

The two commands G and M take one argument following them, which  is the
name of a Q-register, e.g.

G8


inserts the contents  of Q-register 8 in  the buffer at the  location of
the cursor (leaving the cursor after the inserted text).
                               ←←←←←

M8


executes the command string contained in Q-register 8.

        The command Q followed by the name of a Q-register  designates a
particular register for other commands, e.g.

Q1=           will show you the value in Q-register 1 (a number)
              (this does not insert the value in the buffer,
              just displays it for you to inspect)
Q1J           jump to the location contained in Q-register 1
Q1,.          designates a portion of the buffer from the
              location in Q-register 1 to the current location
              of the cursor (.)
Q1,.X2        copies the specified portion of the buffer
              into Q-register 2

The  command X  may be  preceded by  an F,  e.g. Q1,.FX2,  and  the text
designated  will be  copied  into the  Q-register and  deleted  from the
buffer.  It may also be preceded by ↑, in which case text is appended to
what is already in the Q-register.

        Iteration  is  made  possible  because  TECO  is  a  programming
language.   Iterative  procedures   are  enclosed  in   angle  brackets,
<procedure> (notice  these are  "real" angle  brackets, you  type them),
which may be preceded by a number to indicate the number  of repetitions
(no number specified indicates the procedure is to iterate indefinitely,
beginning at the cursor location, until terminated by the ";" command).

        The  most commonly  used  iterative procedure  is  the iterative
search.  The format for an iterative search to change all occurrences of
X+3 to X+2 is

<SX+3$;-DI2$>$$




                                   33
V. TECO                                              Introduction to ITS


Notice the altmodes.  The  first one terminates the search  string, X+3.
The second one terminates the  insert string, 2.  -D, which  deletes the
3, does not need a terminator since it does not take a  string argument.
(Notice it is -D  since the cursor is at  the end of the string  X+3, so
              ←←
the 3 is  the character just before  the cursor).  Finally,  notice that
the ";" is not there for punctuation, but is the special  TECO character
that  says,  "if  you  find  no  occurrences  of  the  string,  exit the
                                                                ←←←← ←←←
iteration."  It provides the terminating condition for the search.
←←←←←←←←←



More examples:

0U1 J<S
$; %1> Q1=$$                 zero Q-register 1, then go to the top of
                             the buffer and search for all occurrences
                             of <carriage return> and increment the valu
                             in Q-register 1 each time you find one;
                             finally display the contents of Q-register 
                             This will count the number of lines in a fi

J .,.XX <SDIFF$; 0L ↑XX L>$$ go to the top of the buffer, and set up
                             Q-register X, then search for all occurrenc
                             of DIFF; when you find one go to the beginn
                             of the line it is on, and append that line
                             to Q-register X, then go to the next line
                             to insure you don't keep finding the same
                                                                  ←←←←
                                                  6
                             line with DIFF in it.
                             This will create a list in Q-register X of 
                             the lines containing DIFF.




















←←←←←←←←←←←←←←←
6. Failure to do something like this is a very common "bug" in iterative
procedures, and is one of the easiest ways to produce infinite loops.

                                   34
Introduction to ITS                                    VI. Miscellaneous


VI. Miscellaneous
    ←←←←←←←←←←←←←

        There are  several other programs  which may be  of help  to the
MACSYMA user.  Two of them, NAME and WHOIS, identify other  users.  PEEK
permits you  to check on  your own or  someone else's status.   And TIME
gives you the current date and time.


VI.A. NAME

        NAME is loaded by typing :NAME followed by a carriage return, or
by NAME↑K.  It prints out a  list of the users currently logged  in with
their full names and locations.  It also gives the idle time,  i.e.  the
length of time since the user last did something at his console.


        When  NAME  has  completed its  printout,  it  kills  itself and
returns you to DDT level.


VI.B. WHOIS

        Loading WHOIS has different effects depending upon the way it is
done.  Loading it with :WHOIS <carriage return> or WHOIS↑K  will produce
the same print out as  :NAME, but with additional information  about the
users.  Loading it with :WHOIS JRN <carriage return> will print  out the
identity of  the user who  uses JRN as  his login  name.  Alternatively,
:WHOIS may be given a full  name, and the result will be to  provide the
login name of  that person.  The difference  from NAME here is  that not
only the full name of  the user is given but some  other identification,
e.g.   MACSYMA  user,  secretary,  graduate  student,  etc.   :WHOIS and
WHOIS↑K give only those users logged  in, but by giving a login  name to
:WHOIS  any user's  identity can  be determined,  whether or  not  he is
logged in.   This is a  good way  to check if  someone already  uses the
login name you want to use.  A user who is not known to the system will,
of course,  not be identified,  and the system  will print "???"  or "No
Users".

        WHOIS also kills itself and leaves you at DDT level.


VI.C. PEEK

        PEEK  permits you  to check  on your  status, or  that  of other
users.  It is loaded by either :PEEK <carriage return> or PEEK↑K (:P and
P↑K are short forms of these two).  The printout is a listing of all the
current users  with all  the jobs  that they  currently possess  and the
status of each job.  This  printout will update itself every  20 seconds
on  a  display console,  and  you may  cause  it to  update  itself more
frequently  by typing  space.  On  a printing  console, the  printout is
updated only by explicitly typing  a space.  You kill PEEK by  typing Q.
This will return you  to DDT level (but  remember that from a  TIP, this
may still take a few  seconds).  There are several modes to  PEEK, which


                                   35
VI. Miscellaneous                                    Introduction to ITS


are selected by a series  of single letter commands. A listing  of these
may be obtained by typing ? at PEEK.

        The first  two lines  give statistics  about the  system itself.
The third line  gives the headings for  the information to  follow.  The
remaining give status information, one line for each job.  The number in
the first column is  the user index, followed  by the login name  of the
person, and the  name which is currently  the default for his  DDT.  The
next column gives  the status of the  job; HANG, RUN, WALK,  CRAWL, FLY,
PAGE, 10!0  and TTYI and  TTYO are  the most common.   HANG and  RUN are
sufficiently  descriptive;  WALK, CRAWL,  and  FLY are  variants  of RUN
                                                  1
intended to indicate roughly how your job is doing  ; PAGE means the job
is currently waiting its turn  in time sharing, and 10!0 means  that the
job has been interrupted (usually because you typed ↑Z).  TTYI  and TTYO
will  be  next to  a  job that  has  control of  the  console,  and mean
"inputting" (or  waiting for input)  and "outputting"  respectively.  To
the right of this status indication there will be one of  three symbols:
<, >,  or Tn.   < means  that the  job has  relinquished control  of the
console to  a "superior"  procedure.  >  means that  control is  with an
"inferior"  procedure.   In the majority  of cases you  will find  the >
next to your DDT, and the < next to your MACSYMA.  The Tn indicates that
that job has control of the console (a bit of reflection will assure you
that if you  are looking at  a PEEK, your Tn  will be opposite  the PEEK
job).  The n is the number of  the line you are logged in on.   The next
two columns give the core units  the job is using.  The first  number is
the total amount  of core the  job takes, and  the second number  is the
amount of that that is on the disk.  The next column gives the % of time
the job is receiving from  the machine.  The remaining column  gives the
total machine time (CPU time) the job has received.  For each  user, the
line with his login name represents his DDT.  Then under  that, indented
slightly, will be a  line for each job, with  the job name in  the first
column, and the directory name that is the current default for  that job
in the second  column.  The status column  and the % time  are generally
the most useful in determining your status.

        On a printing console, running  a PEEK when the system  is being
used heavily can take a long  time.  To just see the status of  your own
jobs, load PEEK by typing

:PEEK S

This will cause it  to display only your  jobs.  If you have  a disowned
job, it will be shown, also, but next to <,  >, or Tn, it will say DSN.






←←←←←←←←←←←←←←←
1. There are a few other varients of RUN: MULTIX, TENEX, and perhaps one
or two others.   These are actually names  of operating systems,  and in
PEEK mean "slow"; this is a bit of inter system sniping.

                                   36
Introduction to ITS                                    VI. Miscellaneous


VI.D. TIME

        :TIME or TIME↑K  will give you a  print out of the  current time
and date, as well as the length of time the system has been running.



















































                                   37
VII. Additional Sources of Information               Introduction to ITS


VII. Additional Sources of Information
     ←←←←←←←←←← ←←←←←←← ←← ←←←←←←←←←←←



VII.A. Running MACSYMA Demo files.

        It is sometimes useful, as an adjunct to the information  in the
MACSYMA Manual, to see how some commands work on sample problems.  There
is a directory  called DEMO which contains  batch files used  for giving
demonstrations.   These  files illustrate  the  various  capabilities of
MACSYMA.  You can list the DEMO directory (see IV.B) and then run one of
these files yourself to see  how a particular command works, or  just to
get an idea of how MACSYMA operates in general.

        After you have chosen a file  (say it is BEGIN DEMO) you  load a
MACSYMA (see II.C) and, after it gives you a command line number, type:

BATCH(BEGIN, DEMO, DSK, DEMO);

or

DEMO(BEGIN, DEMO, DSK, DEMO);

BATCH will cause the file to be run right through without pauses between
command lines.  DEMO will cause the system to pause after  each command-
display line pair for you to  type a space, which will cause it  to type
and execute the next command.



VII.B. SHARE Directory

        Another  directory  available  to  MACSYMA  users  is  the SHARE
directory.  As the name implies,  it is a directory of  routines written
by users which  may be useful  to other users.   There are at  least two
files for each  routine, one providing documentation  on the use  of the
routine, and the other  containing the actual routine ready  for loading
into MACSYMA.

        Users are invited to use the files on this directory and  to add
to it should they  develop some useful routine.  The  naming conventions
and  required file  formats are  explained in  a file  on  the directory
called -READ- -THIS-.  Please heed them.



VII.C. The INFO Program and further information about the system

        The  :INFO  Program  contains  a  variety  of  information about
programs that  run on the  system.  You  can start it  up with  :INFO or
INFO↑K.  It has  a self-teaching feature which  explains how to  use it:
type H the first  time you run it  and it will enter  this self-teaching
routine.


                                   38
Introduction to ITS               VII. Additional Sources of Information


        A file which is interesting to look at is AI:GLS;JARGON >, which
you can print with the :PRINT command.  It is a glossary of some  of the
seemingly incomprehensible language some programmers use.




















































                                   39
VIII. Terminals                                      Introduction to ITS


VIII. Terminals
      ←←←←←←←←←


VIII.A. The TCTYP Program

        ITS tries to identify the type of terminal which the user has in
order to send  characters to it in  an optimal fashion.  However,  it is
not always successful in doing  this, so sometimes you may have  to help
it.   If you  feel this  is the  case type  the command  :TCTYP DESCRIBE
followed by  a carriage  return.  This  printout will  show the  type of
terminal  ITS thinks  you  are using  and the  characteristics  which it
possesses.  The possible  terminal types are: DATAPOINT,  HP2640, OMRON,
TEKTRONIX,  VT52,  GT40,  IMLAC,  MEM  (memorex),  EXECUPORT,  TERMINET,
TELETYPE  (for  33 and  35  terminals), TISILENT,  PRINTING,  and  a few
others.   (See   .INFO.;TCTYP  ORDER  for   the  complete   list.)   The
designation PRINTING is used if none of the other types apply.

        For  example  typing  :TCTYP TISILENT  (followed  by  a carriage
return) will  inform ITS that  you have a  Texas Instruments  Silent 700
terminal.   Giving  the  name  of  the  terminal  causes   the  relevant
parameters to be set  to "reasonable values."  If these  are inadequate,
they can be  reset.  The command :TCTYP  HELP (carriage return)  gives a
brief explanation of  how to reset  them.  The principal  parameters are
LINEL (line length), PAGESIZE (the number of lines per page  or screen),
PADCR, PADLF,  and PADTAB (which  specify padding for  carriage returns,
linefeeds, or tabs respectively).  A value of 0 for PADCR and  PADLF and
1 for  PADTAB means  no padding after  carriage returns,  linefeeds, and
tabs respectively.  A value of 0 for PADTAB means the terminal is not to
tab at all.  The maximum padding value is 7.  (Try small  values first).
A  numerical value  of a  parameter should  be followed  by a  period to
indicate decimal base (otherwise it is taken as octal).

        ITS  does  not  pad carriage  returns  or  linefeeds  unless you
specify it explicitly.  TIPs, however, provide what is  usually adequate
padding  (2 pads  for  carriage return).   If the  padding  for carriage
returns  and  line feeds  on  a terminal  being  used from  a  TIP seems
inadequate, it  may be improved  by resetting the  padding value,  or by
adding PADDED  to its :TCTYP  command.  For example,  a T.I.  Silent 700
that is sometimes missing linefeeds may be improved by typing

:TCTYP TISILENT PADDED

This will slow  down its input response  a bit but will  greatly improve
legibility.

        A complete  description of  the :TCTYP program  may be  found by
typing

:PRINT .INFO.;TCTYP ORDER.

        The normal response by the system to any :TCTYP  command (except
DESCRIBE and HELP) is

:KILL

                                   40
Introduction to ITS                                      VIII. Terminals


In spite of the bloodthirsty look of this response, it does  not destroy
any programs you may have  running, but only indicates execution  of the
command.




VIII.B. A Word About Keyboards

        Unfortunately there  is no standard  ascii keyboard.   There are
many various keyboard layouts, and in some cases certain ascii codes may
not be assigned to the same key on any two keyboards.  Included  here is
a chart which give the ascii codes in octal and decimal, and the various
printing characters  most usually  associated with  them.  These  may be
helpful in trying to locate stray control characters on your console.

        The  keys usually  most  affected by  the whim  of  the keyboard
designer are  the control  functions which in  this document  are called
"control-backarrow" (↑←) and "control-uparrow" (↑↑).  The first of these
is particularly useful on ITS for communicating (↑←).


↑←  On teletypes, the backarrow is the shift of the letter O, and on all
    upper case terminals, this is the first thing to try.  The backarrow
    on  more  modern  terminals  is "underscore",  so  the  key  on your
    keyboard which  would be used  to underline may  turn out to  be the
    elusive "backarrow".  A few consoles (notably the CDI Teleterm) have
    the function of control-underscore on control-shift-zero.

    DEC  Consoles  (Decwriters  (LA36),  Decscopes  (VT50,  VT52)).  The
    ←←←  ←←←←←←←←
    backarrow on these consoles is the underline, which is the  shift of
    the dash.  On the current standard DEC keyboard it is the  fifth key
    from the right in the top row.

    TIsilents.  There are  two main TI keyboard  types.  On one  of them
    ←←←←←←←←←
    there actually is  a key with  a backarrow on it  in the top  row of
    keys, and it is the backarrow for "control-backarrow".  On the other
    control-backarrow is control-question-mark.   If the obvious  key on
    your TI  console does not  work for control-backarrow,  try control-
    question-mark.  On some TI's the key "US" ("underscore") is  the key
    to use for control-backarrow.


↑↑  On teletypes the uparrow is the shift of the letter N.  On all upper
    case terminals  that is  the first  thing to  try.  In  other cases,
    there seems to be no  particular scheme for what the uparrow  is.  A
    key with an arrow pointing up would be an obvious one to  try.  Some
    keyboards indicate uparrow with a large circumflex or caret.

    DEC Consoles.  On the current  DEC keyboard uparrow is the  shift of
    ←←← ←←←←←←←←
    the number 6.

    TIsilents.  On one of the TI keyboards, the uparrow is  the uparrow,
    ←←←←←←←←←


                                   41
VIII. Terminals                                      Introduction to ITS


    and is located in the top  row of keys.  On the other,  the control-
    uparrow function is achieved with control-greater-than.

        The table of  translation of strange control-characters  for the
TI silent  variant keyboard  is given  here, in  case any  other console
types use it:

    To get    ↑←        Type      ↑?
              ↑↑                  ↑>
              ↑]                  ↑=
              ↑\                  ↑<


VIII.C. OCTPUS

        There is a program called :OCTPUS (for OCToPUS) which  will give
you the octal value of any character you type from your  keyboard.  This
will aid you in locating special characters which are eluding  you.  You
start  it with  :OCTPUS and  type characters  at it.   ↑Z will  offer to
return you to DDT level, at  which point it kills itself and  leaves you
there.


































                                   42
Introduction to ITS                                      VIII. Terminals



ASCIIλλλλλ←←←←← CHARλλλλ←←←←    LPT:λλλλ←←←← VALUEλλλλλ←←←←← TRANSλλλλλ←
null                000
control A         ↓  001    vλl    down arrow
control B         α  002    aλ←    alpha
control C (eof)   ↑C  003    bλ←    beta
control D         ∧  004    ↑    logical and (caret)
control E         ¬  005    }    logical not
control F         ε  006    eλ←    epsilon
control G         π  007    nλ-    pi
backspace         ↑H  010    ↑λ\    lambda
tab               ↑I  011
line feed         ↑J  012
vertical tab      ↑K  013
form feed         ↑L  014
carriage return   ↑M  015
control N         ∞  016    %λ←    infinity
control O         ∂  017    @λo    del (partial deriv.)
control P         ⊂  020    (λ←    subset of
control Q         ⊃  021    )λ←    contains
control R         ∩  022    nλ↑    intersection
control S         ∪  023    Uλ←    union
control T         ∀  024    Vλ-    for all
control U         ∃  025    Eλ|    for some
control V         ⊗  026    Oλ+    exclusive or
control W         ↔  027    <λ>    two-way arrow
control X         _  030    ←    underbar
control Y         →  031    -λ>    right arrow
control Z         ~  032    Zλ-    control Z (eof)
altmode              033    =λ/    not equal
control shift l   ≤  034    <λ←    less or equal
control shift m   ≥  035    >λ←    greater or equal
control shift n   ≡  036    =λ←    equivalent
control shift o   ∨  037    Vλ←    logical or
space                 040
exclamation point  !  041
double quote       "  042
number sign        #  043
dollar sign        $  044
percent sign       %  045
ampersand          &  046
single quote       '  047
left parenthesis   (  050
right parenthesis  )  051
asterisk           *  052
plus sign          +  053
comma              ,  054
minus sign (dash)  -  055
period             .  056
slash              /  057
zero               0  060
one                1  061
two                2  062
three              3  063

                                   43
VIII. Terminals                                      Introduction to ITS


four               4  064
five               5  065
six                6  066
seven              7  067
eight              8  070
nine               9  071
colon              :  072
semicolon          ;  073
less than sign     <  074
equal sign         =  075
greater than sign  >  076
question mark      ?  077
at sign            @  100
capital A          A  101
capital B          B  102
capital C          C  103
capital D          D  104
capital E          E  105
capital F          F  106
capital G          G  107
capital H          H  110
capital I          I  111
capital J          J  112
capital K          K  113
capital L          L  114
capital M          M  115
capital N          N  116
capital O          O  117
capital P          P  120
capital Q          Q  121
capital R          R  122
capital S          S  123
capital T          T  124
capital U          U  125
capital V          V  126
capital W          W  127
capital X          X  130
capital Y          Y  131
capital Z          Z  132
left bracket       [  133
backslash          \  134
right bracket      ]  135
up arrow (caret)   ↑  136    ↑λl    up arrow
back " (underbar)  ←  137    <λ-    back arrow
accent grave       `  140
small a            a  141
small b            b  142
small c            c  143
small d            d  144
small e            e  145
small f            f  146
small g            g  147
small h            h  150
small i            i  151

                                   44
Introduction to ITS                                      VIII. Terminals


small j            j  152
small k            k  153
small l            l  154
small m            m  155
small n            n  156
small o            o  157
small p            p  160
small q            q  161
small r            r  162
small s            s  163
small t            t  164
small u            u  165
small v            v  166
small w            w  167
small x            x  170
small y            y  171
small z            z  172
left brace         {  173
vertical bar       |  174
right brace        }  175    λ←    altmode
logical not        }  176    }    right brace
rubout                177
βbreak
































                                   45
VIII. Terminals                                      Introduction to ITS


VIII.D. TIP commands

        Under  certain  circumstances  it  may  be  necessary   to  give
additional commands to the TIP. Frequently used ones are as follows:

    @OPEN <number>          Open connection to host whose number is give

    @C            Close TIP connection.

    @D C E        Device code extra padding, for terminals with a slow c

    @D C A        Device code ascii padding, to undo @D C E.

    @E R          Echo remote, prevents TIP from echoing.

    @E A          Echo all, allows TIP to echo.

    @I L          Insert linefeed after carriage returns.

    @C I L        Clear insert linefeed, nullify @I L

    @T E 0        Enters one-character-at-a-time mode

    @R            Reset































                                   46
Introduction to ITS                                IX. Possible Problems


IX. Possible Problems
    ←←←←←←←← ←←←←←←←←


IX.A. Problems with your terminal

        If the terminal is printing double or triple then it probably is
in half-duplex  mode.  If  the terminal  is capable  of working  in full
duplex then you should switch  it to full duplex.  If the  terminal must
operate  in  half-duplex  mode  then  the  following  procedure  must be
performed.  Type :TCTYP HALF followed  by a carriage return.   This will
prevent ITS  from echoing  (see VIII.A  above).  A  note to  people with
separate modems:  your modem must also be set to full duplex.  So if the
console is set to full duplex and things are still not right,  check the
      1
modem.  If the terminal  and modem are in  full duplex mode and  you are
getting still double printing, a good plan of action is to first type @E
R  to cause the TIP to cease echoing, and then type :TCTYP followed by a
carriage return.  If  the type of terminal  ITS thinks it is  talking to
does not correspond  to the type you  have, then the  appropriate :TCTYP
command  should  be selected  from  section VIII.A.   If  this  fails to
improve the problem, see section VIII above for further suggestions.

        If  the  terminal  is apparently  skipping  characters,  the TIP
command @T E 0 may help.  This causes the TIP to transmit each character
separately (also slowly).

        If your terminal does not line feed when the carriage return key
is struck, you may have to type a line feed after each carriage return.


IX.B. Problems with the system

        The problems you may  encounter fall into two  major categories:
1) your  typing appears on  the console, but  the system  either doesn't
respond or it  gives you an  error message, or  2) your typing  does not
appear on the console, or you get a message such as ITS IS DOWN  (if you
are on a dialup  line) or HOST NOT RESPONDING  or HOST DEAD (if  you are
using a TIP)



IX.C. If Your Typing Appears

        The fact that your  typing appears indicates that the  system is
still operating, so you should first make sure you know what program you
are in.   A simple way  to do this  is to type  ↑Z and then  :LISTJ (see

←←←←←←←←←←←←←←←
1. A further anecdote:  my own  modem has its duplex switch next  to the
on/off switch and both are on the back of the modem.  I reach  around to
                                  ←←←←
the back of the modem to turn it off, and every so often I get the wrong
switch, which may not always be apparent until I log in again and suffer
from double echo.  Now  of course I KNOW that  I have my console  set to
full duplex... how the mighty are fallen.

                                   47
IX. Possible Problems                                Introduction to ITS


Section III.B).  PEEK may also be used (see Section VI.C).  If ↑Z brings
no response, it may be that  you are already at DDT level, but  your DDT
is hung.   Try ↑G to  unhang it.  Sometimes  the system will  be heavily
loaded and  the response will  therefore be slow.   Waiting a  couple of
minutes and trying ↑G again often works.

        A  common problem  is characterized  by the  error  message JOB?
This means that there is no  current job, so the system can  not execute
your commands such as :KILL or :CONTIN, which refer to the  current job.
You will have no current job, of course, if you have not yet loaded one,
or under certain circumstances following error messages or ↑G's  to quit
out of certain commands.  If you type :LISTJ you will see something like
this:

          MACSYM P 15
         *
Notice that the * which should be opposite the current job, is not.  (If
you have no jobs, the only print out from :LISTJ will be *,  of course).
The solution is once again fairly simple: type :JOB and then retype your
original command.

        Misspelling or other typographical errors will, of course, cause
problems.  The  response ?? at  DDT level is  not an error  message, but
only a response to  extra rubouts or extra  ↑Z's.  It means that  DDT is
waiting for you to type  the next command.  The error message  ?U? means
that the system did not  understand what you typed and ignored  it.  The
                                                       ←←←←←←←  ←←
message OP? means that you typed  a stray altmode (or one too few)  in a
short  form  command.   Sequences  of  apparently  random  numbers, e.g.
-137,,2640, are not error  messages, but the contents of  certain memory
locations which you have accidently opened for inspection.  This happens
because  DDT is  also a  debugging language,  as well  as a  monitor for
program control.   Certain keys,  notably linefeed,  uparrow, backarrow,
semi-colon and  slash (there  are others)  are specially  interpreted by
DDT.  If  you type  one of  these, under  certain circumstances  it will
print out  what appears  to be gibberish.   This does  no harm,  but for
everyone's peace of mind do  not type sequences of linefeeds  to advance
your  paper,  for  example.   If you  see  some  of  these  numbers (and
occasionally assembly language instructions such as MOVEI), just  type a
carriage return, which will close the location, making it impossible for
you to accidently "write" anything into a random memory location.  After
you have  typed the carriage  return, you are  ready to  retype whatever
command you had started before the numbers were printed out.

        A syntactically correct but otherwise inoperable "command" (e.g.
one that is misspelled) will produce the message:

DSK:<login name>;TS <command>  NON-EXISTENT...

which only means that the  system was trying to locate a  program called
whatever you typed.   Retyping the command is  all that need be  done in
any of these  cases (with due attention  to spelling).  If, in  spite of
care with spelling and syntax, you are still not receiving  the response
you expect, refer to section  III.G for how to communicate  with someone
in the Mathlab group who can help you.

                                   48
Introduction to ITS                                IX. Possible Problems


        If you feel you are hopelessly "lost" there is a  program called
LUSER which will send a  message requesting help for you.  All  you have
to do is type :LUSER (followed by a carriage return, of course).

        If at any time you happen to receive the error message

DDT BUG, PLEASE DO :BUG DDT ....


it means that  DDT has detected  a bug in  itself.  You should  tell the
systems  programmers  exactly what  commands  you gave,  and  what DDT's
response was.  To do this type

:BUG DDT <your info> ↑C



IX.D. If Your Typing Does Not Appear

        If your typing does not  appear on your console then  either you
got  disconnected  or the  computer  has crashed.   If  the  terminal or
dataset is equipped  with a light  indicating whether the  connection is
still in force, check it.  You can try typing ↑←  (control-backarrow, as
for initiating links) followed by rubout (or delete), and if  the system
does not respond ↑←?  then it is indeed down.

        A TIP or Telnet Server will usually give some message indicating
that the host  computer has crashed, e.g.,  HOST NOT RESPONDING  or HOST
DEAD.  Wait ten minutes and try to log in again.

        If you  are on a  dialup line,  the system may  type out  ITS IS
DOWN.  You need only wait and in ten or fifteen minutes the  system will
either print the message MC ITS REVIVED!  or the message MC ITS  nnnn IN
OPERATION.  In  the former case,  you can continue  from where  you left
off, and in the latter you must type ↑Z and log in again.

        If, when  you log back  in after such  a crash, you  receive the
message --ATTACH YOUR DETACHED JOB--, it means that you were  not logged
out by the system and can return to your job and continue from where you
were interrupted.  The way to  do this is very simple; just  depress the
                                          ←←←← ←←←←←←
space  bar once.   This will  set off  a sequence  of events  which will
result  in  restoring the  "detached  job".  The  following  sequence of
statements will be printed:

HACTRO$J! : $ REOWNED $
* :ATTACH

Notice that you do not type any of this; the system does it for you.  At
this point you  are right back where  you were before  the interruption.
If  you  are not  sure  where you  were,  type ↑Z  and  then  :LISTJ, as
described  in  Section  III.B,  above.   Warning:  do  not  type :ATTACH
                                         ←←←←←←←
yourself, without  being VERY SURE  you know what  you are doing  or you
will regret it!


                                   49
IX. Possible Problems                                Introduction to ITS


        Since   network  connections   can  on   occasion   be  somewhat
unreliable, you may sometimes find your connection breaks.  When you log
back in under these  circumstances, the computer will not  have crashed,
and your old jobs will still be there.  There are two possibilities:


1.   Your  jobs were  detached and  you get  the --ATTACH  YOUR DETACHED
     JOB?--message.  In this case proceed as above.

2.   When you  type :LOGIN  <login name>, the  system types  back <login
     name>$0U <login name>$$↑S.   This means that while  your connection
     was broken, you were not detached.  At this point you are logged in
     twice.  To get back to your previous jobs you say
     :REATTACH <login name>/K
     and your previous jobs will be attached to your current console.

Occasionally when you attempt to answer the --ATTACH YOUR DETACHED JOB?-
-message, you may be  unable to type a space,  or you might not  want to
type  a  space.   You may  be  unable  to type  a  space  if  your phone
connection is very noisy and a spurious character is  transmitted before
you hit the space bar.  You  might not want to attach your  detached job
immediately if  you have  an INIT  which initializes  your line  to some
particular terminal type (in that  case you want to run your  LOGIN INIT
file before recovering  your jobs).  In any  case, having typed  (or had
typed for you by the phone line) a <carriage return> or other character,
you will see the message

LEFT DETACHED?

You may still reclaim your old  job, however.  When you are ready  to do
so, proceed as in case 2 above, i.e. type

:REATTACH <login name>/K

If after trying  all these things, you  are still having trouble  do not
hesitiate to contact someone in the Mathlab group.



















                                   50
                                                       DDT Command Index


                         Index of DDT Commands

Entries in bold face type refer to most complete explanation.
Command       Short form     Function
←←←←←←←       ←←←←← ←←←←     ←←←←←←←←

:?                            lists DDT commands 18
:A            A↑K            loads MACSYMA, 6
:CONTIN       $P             re-enter a job, 11
:CONTINUE                    re-enter a job, 12, 13
:COPY                        copies specified file 23
:DELETE       ↑O             deletes a file 23
:DETACH                      disconnects but keeps jobs 13
:DISOWN                      disowns current job 13
:FIND                        locates files 23
:INQUIR                      registers Users 8
:JOB          $J             selects job, 12, 13
:KILL         $↑X.           kills current job, 12
:LISTF        ↑F             lists a directory 21
:LISTJ        $$V            lists your jobs, 11, 47
:LOGIN        $U             logs you into system, 6
:LOGOUT       $$U            logs you out of system, 7
:MACSYM       MACSYM↑K       loads MACSYMA, 6, 10
:MAIL                        sends mail 14
:MAIL MACSYM                 sends MACSYMA Mail 18
:NAME         NAME↑K         loads NAME 35
:P            P↑K            loads PEEK 35
:PEEK         PEEK↑K         loads PEEK 35
:PEEK S       P↑KS           loads PEEK 36
:PRINT        ↑R             prints out a file 23
:PRMAIL                      prints out Mail 17
:PRMAIL MACSYM                prints out MACSYMA Mail 18
:PROCEED      ↑P             leaves a job running, 11
:PRSENDS                     Prints out messages sent to you 16
:RENAME                      renames a file 23
:SEND                        sends one-way message 14
:SHOUT                       sends message to all logged in users 16
:T            T↑K            loads TECO 26
:TCTYP                       adjusts line to your console, 40, 47
:TCTYP HELP                  explains :TCTYP, 40
:TCTYP HALF                  for half-duplex consoles, 47
:TCTYP STANDARDIZE            standardizes altmode, 10
:TECO         TECO↑K         loads TECO 26
:TIME         TIME↑K         gives current time 37
:USERS                       lists current users 14
:WHOIS        WHOIS↑K        loads WHOIS 35

↑C                           terminates messages 14
↑D                           aborts type-in of a command, 13
↑G                           stops execution of a command, 13
↑H                           selects and re-enters job 12
↑S                           stops printout, 13, 13
↑X                           defaults the first file name 25
↑Y                           defaults second file name 25
↑Z                           gets you to system command level 10, 11, 47

                                   51
DDT Command Index


↑←C                          initiate two-way communication 15
↑←N                          terminates two way communication 15





















































                                   52
                                                           General Index


                                 Index

<login name>$$↑F 22                    INQUIR 3, 8
                                       INQUIR entry 8
account 3                              interrupt message 11
altmode 9                              ITS IS DOWN 47, 49
Altmode 10
altmode 24                             jobs 11
assistance 14
                                       keyboard 41
BACKUP TAPE 21
                                       line length 40
check on your status 35                list a directory 30
Control characters 6                   login name 3
control-backarrow 15, 41
control-underscore 15                  MACSYMA mail 18
control-uparrow 41                     MAIL 14, 17
                                       Manual 1
DATAPOINT 40                           Messages 17
DDT commands 10                        MIT-MC 4
defaults 24                            monitor 10
DEMO directory 38
DESCRIBE(command); 7                   NAME 35
dialup line 3, 47, 49
Dialup protocol 5                      octal value of any character 42
directories 20, 23, 29                 OCTPUS 42
disowned job 13, 36                    OMRON 40
                                       on-line PRIMER 6
echoing 47                             OPTIONS(); 7
editing commands 28
EMACS 26, 26                           PADCR 40
error messages 48                      padding 40
escape 10                              PADLF 40
EXAMPLE(command); 7                    PADTAB 40
EXECUPORT 40                           PAGESIZE 40
                                       password 3
Files 20                               PEEK 35
Filing 29                              Primer 1
FIND 23                                PRIMER(); 7
                                       printing double 47
Grim File Reaper 22, 30                PRMAIL 17
GT40 40                                problems 47
                                       PRSENDS 16
HACTRN 10
half-duplex mode 47                    Query mode 15
HOST DEAD 47, 49                       question marks 18
HOST NOT RESPONDING 47, 49             Quit commands 13
host number 4
HP2640 40                              REATTACH 50
                                       RMAIL 17
IMLAC 40
INFO 38                                SEND(); 7
INIT 8                                 SENDS 16


                                   53
General Index




SHARE directory 38
SHOUT 16
skipping characters 47

TEACHE 26
TECO 26
TEKTRONIX 40
TELETYPE 40
Terminal Interface Processor 3
terminal types 40
TERMINET 40
TI keyboard 41
TIME 37
TIP 3, 7, 35, 40, 47, 49
TIP protocol 5
TISILENT 40

update file 18
USERSn directory 22, 24
USERS directory 29, 30

VT52 40

WHOIS 35





























                                   54
βββ